package com.demo.java.OD51_100.OD65;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【判断字符串子序列】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145611585
 */
public class OdMain {

    /**
     * 该方法用于判断 target 字符串是否是 source 字符串的子序列。
     * 如果是子序列，则输出最后一个字符的位置，否则输出 -1。
     *
     * @param target 目标字符串
     * @param source 源字符串
     */
    public static void sovle(String target, String source) {
        int index = source.length();  // 初始化 index 为 source 字符串的长度
        // 从 target 字符串的末尾开始遍历
        for (int j = target.length() - 1; j >= 0; --j) {
            char ta = target.charAt(j);  // 获取 target 字符串中的当前字符

            // 检查 source 字符串中是否包含该字符
            if (source.contains(String.valueOf(ta))) {
                // 获取字符 ta 在 source 字符串中最后出现的位置
                int indexLast = source.lastIndexOf(String.valueOf(ta));

                // 如果当前字符的最后出现位置小于 index，则更新 index
                if (index > indexLast) {
                    index = indexLast;
                } else {
                    // 如果当前字符位置不符合要求，说明不是子序列，直接输出 -1
                    System.out.println(-1);
                    return;
                }
            } else {
                // 如果 source 中不包含该字符，直接输出 -1
                System.out.println(-1);
                return;
            }
        }
        // 输出最后的 index
        System.out.println(index);
    }

    public static void main(String[] args) {
        try {
            // 创建 Scanner 对象用于读取输入
            Scanner s = new Scanner(System.in);

            // 读取目标字符串
            String target = s.nextLine();  // 目标字符串
            // 读取源字符串
            String source = s.nextLine();  // 源字符串

            // 调用 solve 方法判断并输出结果
            sovle(target, source);
        } catch (Exception e) {
            // 异常处理
            e.printStackTrace();
            System.out.println("input error");
        }
    }
}
